<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>esapi.reference.python_log_factory.PythonLogFactory.PythonLogger</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="esapi-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

      <th class="navbar" width="100%"></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">
      <span class="breadcrumbs">
        <a href="esapi-module.html">Package&nbsp;esapi</a> ::
        <a href="esapi.reference-module.html">Package&nbsp;reference</a> ::
        <a href="esapi.reference.python_log_factory-module.html">Module&nbsp;python_log_factory</a> ::
        <a href="esapi.reference.python_log_factory.PythonLogFactory-class.html">Class&nbsp;PythonLogFactory</a> ::
        Class&nbsp;PythonLogger
      </span>
    </td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
        <tr><td align="right"><span class="options"
            >[<a href="frames.html" target="_top">frames</a
            >]&nbsp;|&nbsp;<a href="esapi.reference.python_log_factory.PythonLogFactory.PythonLogger-class.html"
            target="_top">no&nbsp;frames</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class PythonLogger</h1><p class="nomargin-top"><span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger">source&nbsp;code</a></span></p>
<pre class="base-tree">
<a href="esapi.logger.Logger-class.html">logger.Logger</a> --+
                |
               <strong class="uidshort">PythonLogFactory.PythonLogger</strong>
</pre>

<hr />
<p>Reference implementation of the Logger interface.</p>
  <p>It implements most of the recommendations defined in the Logger 
  interface description. It does not filter out any sensitive data specific
  to the current application or organization, such as credit cards, social 
  security numbers, etc.</p>

<hr />
<div class="fields">      <p><strong>Author:</strong>
        Craig Younkins (craig.younkins@owasp.org)
      </p>
      <p><strong>Since:</strong>
        June 1, 2009
      </p>
      <p><strong>See Also:</strong>
        <a href="esapi.log_factory.LogFactory-class.html" 
        class="link">esapi.LogFactory</a>
      </p>
</div><!-- ==================== NESTED CLASSES ==================== -->
<a name="section-NestedClasses"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Nested Classes</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-NestedClasses"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="esapi.logger.Logger-class.html">logger.Logger</a></code></b>:
      <code><a href="esapi.logger.Logger.EventType-class.html">EventType</a></code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== INSTANCE METHODS ==================== -->
<a name="section-InstanceMethods"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Instance Methods</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-InstanceMethods"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="esapi.reference.python_log_factory.PythonLogFactory.PythonLogger-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">application_name</span>,
        <span class="summary-sig-arg">module_name</span>)</span><br />
      Public constructor should only ever be called via the appropriate 
      LogFactory</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.__init__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="esapi.reference.python_log_factory.PythonLogFactory.PythonLogger-class.html#set_level" class="summary-sig-name">set_level</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">level</span>)</span><br />
      Note: In this implementation, this change is not persistent, meaning 
      that if the application is restarted, the log level will revert to 
      the level defined in the ESAPI SecurityConfiguration properties file.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.set_level">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="esapi.reference.python_log_factory.PythonLogFactory.PythonLogger-class.html#trace" class="summary-sig-name">trace</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">event_type</span>,
        <span class="summary-sig-arg">message</span>,
        <span class="summary-sig-arg">exception</span>=<span class="summary-sig-default">None</span>)</span><br />
      Log a trace level security event if 'trace' level logging is enabled 
      and also record the stack trace associated with the event.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.trace">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="esapi.reference.python_log_factory.PythonLogFactory.PythonLogger-class.html#debug" class="summary-sig-name">debug</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">event_type</span>,
        <span class="summary-sig-arg">message</span>,
        <span class="summary-sig-arg">exception</span>=<span class="summary-sig-default">None</span>)</span><br />
      Log a debug level security event if 'debug' level logging is enabled 
      and also record the stack trace associated with the event.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.debug">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="esapi.reference.python_log_factory.PythonLogFactory.PythonLogger-class.html#info" class="summary-sig-name">info</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">event_type</span>,
        <span class="summary-sig-arg">message</span>,
        <span class="summary-sig-arg">exception</span>=<span class="summary-sig-default">None</span>)</span><br />
      Log an info level security event if 'info' level logging is enabled 
      and also record the stack trace associated with the event.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.info">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="esapi.reference.python_log_factory.PythonLogFactory.PythonLogger-class.html#warning" class="summary-sig-name">warning</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">event_type</span>,
        <span class="summary-sig-arg">message</span>,
        <span class="summary-sig-arg">exception</span>=<span class="summary-sig-default">None</span>)</span><br />
      Log a warning level security event if 'warning' level logging is 
      enabled and also record the stack trace associated with the event.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.warning">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="esapi.reference.python_log_factory.PythonLogFactory.PythonLogger-class.html#error" class="summary-sig-name">error</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">event_type</span>,
        <span class="summary-sig-arg">message</span>,
        <span class="summary-sig-arg">exception</span>=<span class="summary-sig-default">None</span>)</span><br />
      Log an error level security event if 'error' level logging is enabled
      and also record the stack trace associated with the event.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.error">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="esapi.reference.python_log_factory.PythonLogFactory.PythonLogger-class.html#fatal" class="summary-sig-name">fatal</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">event_type</span>,
        <span class="summary-sig-arg">message</span>,
        <span class="summary-sig-arg">exception</span>=<span class="summary-sig-default">None</span>)</span><br />
      Log a fatal level security event if 'fatal' level logging is enabled 
      and also record the stack trace associated with the event.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.fatal">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="esapi.reference.python_log_factory.PythonLogFactory.PythonLogger-class.html#log" class="summary-sig-name">log</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">level</span>,
        <span class="summary-sig-arg">event_type</span>,
        <span class="summary-sig-arg">message</span>,
        <span class="summary-sig-arg">exception</span>=<span class="summary-sig-default">None</span>)</span><br />
      Log the message after optionally encoding any special characters that
      might be dangerous when viewed by an HTML based log viewer.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.log">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="esapi.reference.python_log_factory.PythonLogFactory.PythonLogger-class.html#is_debug_enabled" class="summary-sig-name">is_debug_enabled</a>(<span class="summary-sig-arg">self</span>)</span><br />
      Allows the caller to determine if messages logged at this level will 
      be discarded, to avoid performing expensive processing.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.is_debug_enabled">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="esapi.reference.python_log_factory.PythonLogFactory.PythonLogger-class.html#is_error_enabled" class="summary-sig-name">is_error_enabled</a>(<span class="summary-sig-arg">self</span>)</span><br />
      Allows the caller to determine if messages logged at this level will 
      be discarded, to avoid performing expensive processing.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.is_error_enabled">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="esapi.reference.python_log_factory.PythonLogFactory.PythonLogger-class.html#is_fatal_enabled" class="summary-sig-name">is_fatal_enabled</a>(<span class="summary-sig-arg">self</span>)</span><br />
      Allows the caller to determine if messages logged at this level will 
      be discarded, to avoid performing expensive processing.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.is_fatal_enabled">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="esapi.reference.python_log_factory.PythonLogFactory.PythonLogger-class.html#is_info_enabled" class="summary-sig-name">is_info_enabled</a>(<span class="summary-sig-arg">self</span>)</span><br />
      Allows the caller to determine if messages logged at this level will 
      be discarded, to avoid performing expensive processing.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.is_info_enabled">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="esapi.reference.python_log_factory.PythonLogFactory.PythonLogger-class.html#is_trace_enabled" class="summary-sig-name">is_trace_enabled</a>(<span class="summary-sig-arg">self</span>)</span><br />
      Allows the caller to determine if messages logged at this level will 
      be discarded, to avoid performing expensive processing.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.is_trace_enabled">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="esapi.reference.python_log_factory.PythonLogFactory.PythonLogger-class.html#is_warning_enabled" class="summary-sig-name">is_warning_enabled</a>(<span class="summary-sig-arg">self</span>)</span><br />
      Allows the caller to determine if messages logged at this level will 
      be discarded, to avoid performing expensive processing.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.is_warning_enabled">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
</table>
<!-- ==================== CLASS VARIABLES ==================== -->
<a name="section-ClassVariables"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Class Variables</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-ClassVariables"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a name="pyLogger"></a><span class="summary-name">pyLogger</span> = <code title="None">None</code><br />
      hash(x)
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a name="application_name"></a><span class="summary-name">application_name</span> = <code title="None">None</code><br />
      hash(x)
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
        <a name="module_name"></a><span class="summary-name">module_name</span> = <code title="None">None</code><br />
      hash(x)
    </td>
  </tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="esapi.logger.Logger-class.html">logger.Logger</a></code></b>:
      <code><a href="esapi.logger.Logger-class.html#ALL">ALL</a></code>,
      <code><a href="esapi.logger.Logger-class.html#DEBUG">DEBUG</a></code>,
      <code><a href="esapi.logger.Logger-class.html#ERROR">ERROR</a></code>,
      <code><a href="esapi.logger.Logger-class.html#EVENT_FAILURE">EVENT_FAILURE</a></code>,
      <code><a href="esapi.logger.Logger-class.html#EVENT_SUCCESS">EVENT_SUCCESS</a></code>,
      <code><a href="esapi.logger.Logger-class.html#FATAL">FATAL</a></code>,
      <code><a href="esapi.logger.Logger-class.html#INFO">INFO</a></code>,
      <code><a href="esapi.logger.Logger-class.html#OFF">OFF</a></code>,
      <code><a href="esapi.logger.Logger-class.html#SECURITY_FAILURE">SECURITY_FAILURE</a></code>,
      <code><a href="esapi.logger.Logger-class.html#SECURITY_SUCCESS">SECURITY_SUCCESS</a></code>,
      <code><a href="esapi.logger.Logger-class.html#TRACE">TRACE</a></code>,
      <code><a href="esapi.logger.Logger-class.html#WARNING">WARNING</a></code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== METHOD DETAILS ==================== -->
<a name="section-MethodDetails"></a>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Method Details</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-MethodDetails"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
</table>
<a name="__init__"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">application_name</span>,
        <span class="sig-arg">module_name</span>)</span>
    <br /><em class="fname">(Constructor)</em>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.__init__">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Public constructor should only ever be called via the appropriate 
  LogFactory</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>application_name</code></strong> - the application name</li>
        <li><strong class="pname"><code>module_name</code></strong> - the module name</li>
    </ul></dd>
    <dt>Overrides:
        <a href="esapi.logger.Logger-class.html#__init__">logger.Logger.__init__</a>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="set_level"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">set_level</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">level</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.set_level">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Note: In this implementation, this change is not persistent, meaning 
  that if the application is restarted, the log level will revert to the 
  level defined in the ESAPI SecurityConfiguration properties file.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>level</code></strong> - The level to set the logging level to.</li>
    </ul></dd>
    <dt>Overrides:
        <a href="esapi.logger.Logger-class.html#set_level">logger.Logger.set_level</a>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="trace"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">trace</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">event_type</span>,
        <span class="sig-arg">message</span>,
        <span class="sig-arg">exception</span>=<span class="sig-default">None</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.trace">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Log a trace level security event if 'trace' level logging is enabled 
  and also record the stack trace associated with the event.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>event_type</code></strong> - the type of event</li>
        <li><strong class="pname"><code>message</code></strong> - the message to log</li>
        <li><strong class="pname"><code>exception</code></strong> - the exception to be logged</li>
    </ul></dd>
    <dt>Overrides:
        <a href="esapi.logger.Logger-class.html#trace">logger.Logger.trace</a>
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="debug"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">debug</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">event_type</span>,
        <span class="sig-arg">message</span>,
        <span class="sig-arg">exception</span>=<span class="sig-default">None</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.debug">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Log a debug level security event if 'debug' level logging is enabled 
  and also record the stack trace associated with the event.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>event_type</code></strong> - the type of event</li>
        <li><strong class="pname"><code>message</code></strong> - the message to log</li>
        <li><strong class="pname"><code>exception</code></strong> - the exception to be logged</li>
    </ul></dd>
    <dt>Overrides:
        <a href="esapi.logger.Logger-class.html#debug">logger.Logger.debug</a>
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="info"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">info</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">event_type</span>,
        <span class="sig-arg">message</span>,
        <span class="sig-arg">exception</span>=<span class="sig-default">None</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.info">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Log an info level security event if 'info' level logging is enabled 
  and also record the stack trace associated with the event.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>event_type</code></strong> - the type of event</li>
        <li><strong class="pname"><code>message</code></strong> - the message to log</li>
        <li><strong class="pname"><code>exception</code></strong> - the exception to be logged</li>
    </ul></dd>
    <dt>Overrides:
        <a href="esapi.logger.Logger-class.html#info">logger.Logger.info</a>
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="warning"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">warning</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">event_type</span>,
        <span class="sig-arg">message</span>,
        <span class="sig-arg">exception</span>=<span class="sig-default">None</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.warning">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Log a warning level security event if 'warning' level logging is 
  enabled and also record the stack trace associated with the event.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>event_type</code></strong> - the type of event</li>
        <li><strong class="pname"><code>message</code></strong> - the message to log</li>
        <li><strong class="pname"><code>exception</code></strong> - the exception to be logged</li>
    </ul></dd>
    <dt>Overrides:
        <a href="esapi.logger.Logger-class.html#warning">logger.Logger.warning</a>
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="error"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">error</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">event_type</span>,
        <span class="sig-arg">message</span>,
        <span class="sig-arg">exception</span>=<span class="sig-default">None</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.error">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Log an error level security event if 'error' level logging is enabled 
  and also record the stack trace associated with the event.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>event_type</code></strong> - the type of event</li>
        <li><strong class="pname"><code>message</code></strong> - the message to log</li>
        <li><strong class="pname"><code>exception</code></strong> - the exception to be logged</li>
    </ul></dd>
    <dt>Overrides:
        <a href="esapi.logger.Logger-class.html#error">logger.Logger.error</a>
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="fatal"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">fatal</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">event_type</span>,
        <span class="sig-arg">message</span>,
        <span class="sig-arg">exception</span>=<span class="sig-default">None</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.fatal">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Log a fatal level security event if 'fatal' level logging is enabled 
  and also record the stack trace associated with the event.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>event_type</code></strong> - the type of event</li>
        <li><strong class="pname"><code>message</code></strong> - the message to log</li>
        <li><strong class="pname"><code>exception</code></strong> - the exception to be logged</li>
    </ul></dd>
    <dt>Overrides:
        <a href="esapi.logger.Logger-class.html#fatal">logger.Logger.fatal</a>
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="log"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">log</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">level</span>,
        <span class="sig-arg">event_type</span>,
        <span class="sig-arg">message</span>,
        <span class="sig-arg">exception</span>=<span class="sig-default">None</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.log">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Log the message after optionally encoding any special characters that 
  might be dangerous when viewed by an HTML based log viewer. Also encode 
  any carriage returns and line feeds to prevent log injection attacks. 
  This logs all the supplied parameters plus the user ID, user's source IP,
  a logging specific session ID, and the current date/time.</p>
  <p>It will only log the message if the current logging level is enabled, 
  otherwise it will discard the message.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>level</code></strong> - the severity level of the security event</li>
        <li><strong class="pname"><code>event_type</code></strong> - the event_type of the event (SECURITY, FUNCTIONALITY, etc.)</li>
        <li><strong class="pname"><code>message</code></strong> - the message</li>
        <li><strong class="pname"><code>exception</code></strong> - an exception</li>
    </ul></dd>
  </dl>
</td></tr></table>
</div>
<a name="is_debug_enabled"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">is_debug_enabled</span>(<span class="sig-arg">self</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.is_debug_enabled">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Allows the caller to determine if messages logged at this level will 
  be discarded, to avoid performing expensive processing.</p>
  <dl class="fields">
    <dt>Returns:</dt>
        <dd>True if debug level messages will be output to the log</dd>
    <dt>Overrides:
        <a href="esapi.logger.Logger-class.html#is_debug_enabled">logger.Logger.is_debug_enabled</a>
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="is_error_enabled"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">is_error_enabled</span>(<span class="sig-arg">self</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.is_error_enabled">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Allows the caller to determine if messages logged at this level will 
  be discarded, to avoid performing expensive processing.</p>
  <dl class="fields">
    <dt>Returns:</dt>
        <dd>True if error level messages will be output to the log</dd>
    <dt>Overrides:
        <a href="esapi.logger.Logger-class.html#is_error_enabled">logger.Logger.is_error_enabled</a>
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="is_fatal_enabled"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">is_fatal_enabled</span>(<span class="sig-arg">self</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.is_fatal_enabled">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Allows the caller to determine if messages logged at this level will 
  be discarded, to avoid performing expensive processing.</p>
  <dl class="fields">
    <dt>Returns:</dt>
        <dd>True if fatal level messages will be output to the log</dd>
    <dt>Overrides:
        <a href="esapi.logger.Logger-class.html#is_fatal_enabled">logger.Logger.is_fatal_enabled</a>
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="is_info_enabled"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">is_info_enabled</span>(<span class="sig-arg">self</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.is_info_enabled">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Allows the caller to determine if messages logged at this level will 
  be discarded, to avoid performing expensive processing.</p>
  <dl class="fields">
    <dt>Returns:</dt>
        <dd>True if info level messages will be output to the log</dd>
    <dt>Overrides:
        <a href="esapi.logger.Logger-class.html#is_info_enabled">logger.Logger.is_info_enabled</a>
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="is_trace_enabled"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">is_trace_enabled</span>(<span class="sig-arg">self</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.is_trace_enabled">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Allows the caller to determine if messages logged at this level will 
  be discarded, to avoid performing expensive processing.</p>
  <dl class="fields">
    <dt>Returns:</dt>
        <dd>True if the trace level messages will be output to the log</dd>
    <dt>Overrides:
        <a href="esapi.logger.Logger-class.html#is_trace_enabled">logger.Logger.is_trace_enabled</a>
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="is_warning_enabled"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">is_warning_enabled</span>(<span class="sig-arg">self</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="esapi.reference.python_log_factory-pysrc.html#PythonLogFactory.PythonLogger.is_warning_enabled">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Allows the caller to determine if messages logged at this level will 
  be discarded, to avoid performing expensive processing.</p>
  <dl class="fields">
    <dt>Returns:</dt>
        <dd>True if warning level messages will be output to the log</dd>
    <dt>Overrides:
        <a href="esapi.logger.Logger-class.html#is_warning_enabled">logger.Logger.is_warning_enabled</a>
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="esapi-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

      <th class="navbar" width="100%"></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    Generated by Epydoc 3.0.1 on Sun Nov  8 16:04:22 2009
    </td>
    <td align="right" class="footer">
      <a target="mainFrame" href="http://epydoc.sourceforge.net"
        >http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie();
  // -->
</script>
</body>
</html>
